The _rrrr_eeee_ffff_rrrr_eeee_ssss_hhhh and _wwww_rrrr_eeee_ffff_rrrr_eeee_ssss_hhhh routines (or _wwww_nnnn_oooo_uuuu_tttt_rrrr_eeee_ffff_rrrr_eeee_ssss_hhhh and _dddd_oooo_uuuu_pppp_dddd_aaaa_tttt_eeee) must be
called to get any output on the terminal, as other routines merely
manipulate data structures. The routine _wwww_rrrr_eeee_ffff_rrrr_eeee_ssss_hhhh copies the named window
to the physical terminal screen, taking into account what is already
there in order to do optimizations. The _rrrr_eeee_ffff_rrrr_eeee_ssss_hhhh routine is the same,
using _ssss_tttt_dddd_ssss_cccc_rrrr as the default window. Unless _llll_eeee_aaaa_vvvv_eeee_oooo_kkkk has been enabled, the
physical cursor of the terminal is left at the location of the cursor for
that window.
The _wwww_nnnn_oooo_uuuu_tttt_rrrr_eeee_ffff_rrrr_eeee_ssss_hhhh and _dddd_oooo_uuuu_pppp_dddd_aaaa_tttt_eeee routines allow multiple updates with more
efficiency than _wwww_rrrr_eeee_ffff_rrrr_eeee_ssss_hhhh alone. In addition to all the window
structures, _cccc_uuuu_rrrr_ssss_eeee_ssss keeps two data structures representing the terminal
screen: a physical screen, describing what is actually on the screen,
and a virtual screen, describing what the programmer wants to have on the
screen.
The routine _wwww_rrrr_eeee_ffff_rrrr_eeee_ssss_hhhh works by first calling _wwww_nnnn_oooo_uuuu_tttt_rrrr_eeee_ffff_rrrr_eeee_ssss_hhhh, which copies
the named window to the virtual screen, and then calling _dddd_oooo_uuuu_pppp_dddd_aaaa_tttt_eeee, which
compares the virtual screen to the physical screen and does the actual
update. If the programmer wishes to output several windows at once, a
series of calls to _wwww_rrrr_eeee_ffff_rrrr_eeee_ssss_hhhh results in alternating calls to _wwww_nnnn_oooo_uuuu_tttt_rrrr_eeee_ffff_rrrr_eeee_ssss_hhhh
and _dddd_oooo_uuuu_pppp_dddd_aaaa_tttt_eeee, causing several bursts of output to the screen. By first
calling _wwww_nnnn_oooo_uuuu_tttt_rrrr_eeee_ffff_rrrr_eeee_ssss_hhhh for each window, it is then possible to call
_dddd_oooo_uuuu_pppp_dddd_aaaa_tttt_eeee once, resulting in only one burst of output, with fewer total
characters transmitted and less CPU time used. If the _w_i_n argument to
_wwww_rrrr_eeee_ffff_rrrr_eeee_ssss_hhhh is the global variable _cccc_uuuu_rrrr_ssss_cccc_rrrr, the screen is immediately cleared
and repainted from scratch.
The _rrrr_eeee_dddd_rrrr_aaaa_wwww_wwww_iiii_nnnn routine indicates to _cccc_uuuu_rrrr_ssss_eeee_ssss that some screen lines are
corrupted and should be thrown away before anything is written over them.
These routines could be used for programs such as editors, which want a
command to redraw some part of the screen or the entire screen. The
routine _rrrr_eeee_dddd_rrrr_aaaa_wwww_llll_nnnn is preferred over _rrrr_eeee_dddd_rrrr_aaaa_wwww_wwww_iiii_nnnn where a noisy communication
line exists and redrawing the entire window could be subject to even more
communication noise. Just redrawing several lines offers the possibility